package com.kmxd.ams.client.use.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.Date;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 全宗|单位利用档案
 *
 * @author ZuoLG
 * @since 2022-08-02
 */
@Schema(description = "全宗|单位利用档案对象")
@Data
public class UseArchAddDTO implements Serializable {

  private static final long serialVersionUID = 1L;

  /** 主键ID */
  @Schema(description = "主键ID")
  private Long id;

  /** 公司ID */
  @Schema(description = "公司ID")
  private Long comId;

  /** 全宗ID */
  @Schema(description = "全宗ID")
  private Long fondsId;

  /** 用户ID */
  @Schema(description = "用户ID")
  private Long userId;

  /** 利用表id */
  @Schema(description = "利用表id")
  private Long orderId;

  /** 拆单表id */
  @Schema(description = "拆单表id")
  private Long outOrderId;

  /** 档案所属表名 */
  @Schema(description = "档案所属表名")
  @NotBlank(message = "档案所属表名不能为空")
  @Size(max = 100, message = "档案所属表名长度不能超过100个字符")
  private String tableId;

  /** 档案题名 */
  @Schema(description = "档案题名")
  private String title;

  /** 档案ID */
  @Schema(description = "档案ID")
  @NotNull(message = "档案ID不能为空")
  private Long archId;

  /** 档号 */
  @Schema(description = "档号")
  private String archCode;

  /** 档案类型编号 */
  @Schema(description = "档案类型编号")
  @NotNull(message = "档案类型编号不能为空")
  private Long archTypeId;

  /** 所属部门ID */
  @Schema(description = "所属部门ID")
  private String deptId;

  /** 所属部门名称 */
  @Schema(description = "所属部门名称")
  private String deptName;

  /** 归档部门 */
  @Schema(description = "归档部门")
  private String fillingDepartment;

  /** 项目文件案卷 */
  @Schema(description = "项目文件案卷")
  private String archLevel;

  /** 年度 */
  @Schema(description = "年度")
  private Integer year;

  /** 密级 */
  @Schema(description = "密级")
  private String security;

  /** 是否加密 0不加密，1加密 */
  @Schema(description = "是否加密 0不加密，1加密")
  private Boolean isSecurity;

  /** 保管期限 */
  @Schema(description = "保管期限")
  private String retentionPeriod;

  /** 文件形态 */
  @Schema(description = "文件形态")
  private String fileType;

  /** 归档份数 */
  @Schema(description = "归档份数")
  private Integer fillingNum;

  /** 隶属处室ID */
  @Schema(description = "隶属处室ID")
  private String sectionId;

  /** 隶属处室 */
  @Schema(description = "隶属处室")
  private String sectionName;

  /** 用户部门ID */
  @Schema(description = "用户部门ID")
  private Long userDeptId;

  /** 电子借阅类型 */
  @Schema(description = "电子借阅类型")
  private Integer eleType;

  /** 电子权限 */
  @Schema(description = "电子权限")
  private Boolean eleAuth;

  /** 电子利用开始日期 */
  @Schema(description = "电子利用开始日期")
  private Date startTime;

  /** 电子利用结束日期 */
  @Schema(description = "电子利用结束日期")
  private Date endTime;

  /** 文档编号 */
  @Schema(description = "文档编号")
  private String docNumber;

  /** 授权 */
  @Schema(description = "授权")
  private Integer applyEleAuth;

  /** 备注 */
  @Schema(description = "备注")
  private String remarks;

  /** 状态 */
  @Schema(description = "状态")
  private Integer status;

  /** 排序 */
  @Schema(description = "排序")
  private Integer sort;

  /** 创建人 */
  @Schema(description = "创建人")
  private Long createBy;

  /** 创建时间 */
  @Schema(description = "创建时间")
  private Date createTime;

  /** 更新人 */
  @Schema(description = "更新人")
  private Long updateBy;

  /** 更新时间 */
  @Schema(description = "更新时间")
  private Date updateTime;

  /** 删除状态(0-正常,1-已删除) */
  @Schema(description = "删除状态(0-正常,1-已删除)")
  private Long delFlag;

  @Schema(description = "申请数量")
  private Integer applyArchNum;

  @Schema(description = "库存量")
  private Integer storageNum;
}
